package com.admin.system.service;

import cn.hutool.core.lang.tree.Tree;
import com.admin.model.base.PageResult;
import com.admin.model.dto.MenuDto;
import com.admin.model.pojo.Menu;
import com.admin.model.vo.MenuTreeVo;
import com.admin.model.vo.MenuTreeVo2;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
 * (Menu)表服务接口
 *
 * @author makejava
 * @since 2021-01-31 20:10:18
 */
public interface MenuService extends IService<Menu> {
    /**
     * 条件查询
     * @param menuDto
     * @return
     */
    List<MenuDto> queryAll(MenuDto menuDto);

    /**
     * 构建菜单树
     * @return
     */
    List<Tree<String>> buildTree();


    /**
     * 创建菜单
     * @param menuDto
     * @return
     */
    void create(MenuDto menuDto);


    /**
     * id查询
     * @param id
     * @return
     */
    MenuDto findById(Long id);

    /**
     * 构建菜单树
     * @param menus
     * @return
     */
    List<MenuTreeVo> buildTree(List<Menu> menus);

    /**
     * pid查询
     * @param pid
     * @return
     */
    List<MenuDto> queryByPid(Long pid);

    /**
     * ids删除
     * @param ids
     */
   void deleteByIds(Set<Long> ids);

    /**
     * 更新菜单
      * @param menuDto
     * @return
     */
   Menu updateById(MenuDto menuDto);

    /**
     * 用户id查询菜单
     * @param userId
     * @return
     */
   List<Menu> queryByUserId(Long userId);

}